package com.lonely.inventory.service;

import com.lonely.inventory.domain.entity.SysStockUpInventory;
import com.lonely.inventory.domain.entity.SysStockUpInventorySizeInfo;

import java.util.List;

/**
 * @author : 黄志标
 * @date: 2025/9/19 10:02
 * @description: 备货库存日志服务类
 */
public interface IStockUpInventoryLogService {

    /**
     * 新增备货库存接口的日志
     *
     * @param sysSurplusInventory
     * @param sysSurplusInventorySizeInfos
     */
    void addStockUpInventoryLog(SysStockUpInventory sysSurplusInventory, List<SysStockUpInventorySizeInfo> sysSurplusInventorySizeInfos);

    /**
     * 入库备货库存接口的日志
     *
     * @param stockUpInventory
     * @param oldSurplusInventorySizeInfos
     * @param newSurplusInventorySizeInfos
     */
    void putStockUpInventoryLog(SysStockUpInventory stockUpInventory,
                                List<SysStockUpInventorySizeInfo> oldSurplusInventorySizeInfos,
                                List<SysStockUpInventorySizeInfo> newSurplusInventorySizeInfos);

    /**
     * 出库备货库存接口的日志
     *
     * @param stockUpInventory
     * @param oldSurplusInventorySizeInfos
     * @param newSurplusInventorySizeInfos
     */
    void outStockUpInventoryLog(SysStockUpInventory stockUpInventory,
                                List<SysStockUpInventorySizeInfo> oldSurplusInventorySizeInfos,
                                List<SysStockUpInventorySizeInfo> newSurplusInventorySizeInfos);

    /**
     * 调拨备货库存接口的日志
     *
     * @param stockUpInventory
     * @param oldInventorySizeInfos
     * @param newInventorySizeInfos
     */
    void transferStockUpInventoryLog(SysStockUpInventory stockUpInventory, List<SysStockUpInventorySizeInfo> oldInventorySizeInfos, List<SysStockUpInventorySizeInfo> newInventorySizeInfos);

    /**
     * 备货库存上架接口的日志
     *
     * @param stockUpInventory
     * @param oldInventorySizeInfos
     * @param newInventorySizeInfos
     */
    void putAwayStockUpInventoryLog(SysStockUpInventory stockUpInventory, List<SysStockUpInventorySizeInfo> oldInventorySizeInfos, List<SysStockUpInventorySizeInfo> newInventorySizeInfos);
}
